package cl.zeke.cursos.jsf2spring3jpa2.negocio.entities;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="mascota")
public class Mascota implements Serializable {
    
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long idMascota;
    
    @Column(name="nombre")
    private String nombre;
    
    @Column(name="descripcion")
    private String descripcion;
    
    @Column(name="macho")
    private Boolean macho;
    
    @JoinColumn(name="amo_rut")
    @ManyToOne(fetch= FetchType.LAZY)
    private Persona persona;
    
    @JoinColumn(name="tipo_mascota_cod")
    @ManyToOne(fetch= FetchType.LAZY)
    private TipoMascota tipoMascota;

    public Long getIdMascota() {
        return idMascota;
    }

    public void setIdMascota(Long idMascota) {
        this.idMascota = idMascota;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Boolean getMacho() {
        return macho;
    }

    public void setMacho(Boolean macho) {
        this.macho = macho;
    }

    public Persona getPersona() {
        return persona;
    }

    public void setPersona(Persona persona) {
        this.persona = persona;
    }

    public TipoMascota getTipoMascota() {
        return tipoMascota;
    }

    public void setTipoMascota(TipoMascota tipoMascota) {
        this.tipoMascota = tipoMascota;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 47 * hash + (this.idMascota != null ? this.idMascota.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Mascota other = (Mascota) obj;
        if (this.idMascota != other.idMascota && (this.idMascota == null || !this.idMascota.equals(other.idMascota))) {
            return false;
        }
        return true;
    }
}
